// pages/home/home.js
import { getBannerList, getNavList, getProList } from '../../api/home'

const myBehavior = require('../../mixins/index')

Page({
    behaviors: [myBehavior],
  /**
   * 页面的初始数据
   */
  data: {
    username: '',
    bannerList: [],
    navList: [],
    proList: [],
    count: 2, // 当前页面
    scrollTop: 0
  },
  goDetail(event){
    // console.log(event.target.dataset.proid);
    const proid = event.target.dataset.proid
    // 路由传参的方式一： URL 拼接的方式，通过 onLoad 方法的参数 options 进行接收

    wx.navigateTo({
      url: '/pages/detail/detail?proid=' + proid,
      events: {
        // 为指定事件添加一个监听器，获取被打开页面传送到当前页面的数据
        acceptDataFromOpenedPage: function(data) {
          console.log(11111111,data)
        },
        someEvent: function(data) {
          console.log(22222222,data)
        }
      },
      success: function(res) {
        // 通过eventChannel向被打开页面传送数据
        // res.eventChannel.emit 用来触发下一页面的事件用的，触发的同时可以携带参数
        res.eventChannel.emit('getProId', { 
            proid,
            name: '老吴',
            age: 18,
            sex: '女'
         })
      }
    })
  },
  onPageScroll({scrollTop}){
    // console.log(scrollTop);
    // 记录当前的滚动距离
    this.setData({
        scrollTop
    })
  },
  backTop(){
    wx.pageScrollTo({
        scrollTop: 0,
        duration: 300
      })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    
    // 获取全局的 app 实例，找到全局的属性
    // const appInstance = getApp()
    // console.log(appInstance.globalData.userInfo.username)
    // this.setData({
    //     username: appInstance.globalData.userInfo.username
    // })

    // 获取的是轮播图数据
    getBannerList().then(res => {
        // console.log(res);
        this.setData({
            bannerList: res.data
        })
    })

    // 获取宫格布局数据
     this.setData({
         navList: getNavList()
     })

    //  获取商品列表数据
    getProList().then(res => {
        this.setData({
            proList: res.data
        })
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 页面的下拉刷新动作
    getProList().then(res => {
        this.setData({
            proList: res.data,
            count: 2
        })
        
        // 数据请求成功之后需要手动的关闭下拉刷新的动作
        wx.stopPullDownRefresh()
    })
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    console.log('被上拉了');
    getProList({
        count: this.data.count
    }).then(res => {
        if(res.data.length <= 0){
            // 没有更多数据了
            wx.showToast({
              title: '没有更多数据了',
            })
        }else {
            // 还有数据
            this.setData({
                proList: [...this.data.proList, ...res.data],
                count: this.data.count + 1
            })
        }
    })
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})